
#include "ThreadPoll.hpp"
#include <iostream>
#include <unistd.h>

using namespace ThreadPollModule;

int main()
{
    // 1. 取单例
    ThreadPoll* tp = ThreadPoll::GetInstance();

    // 2. 启动线程池
    tp->Start();

    // // 3. 投递 10 个任务
    // sleep(1);
    // for (int i = 0; i < 10; ++i)
    // {
    //     tp->Enqueue([i]{
    //         std::cout << "task " << i << " is running in thread "
    //                   << pthread_self() << std::endl;
    //         // sleep(1);
    //     });
    // }

    // 4. 等所有任务执行完再退出
    sleep(3);

    // 5. 停止线程池并等待线程结束
    tp->Stop();
    tp->Join();

    std::cout << "all done.\n";
    return 0;
}